#! /bin/bash

. ./scripts/shell/common.sh
. ./scripts/shell/golang.sh
. ./scripts/shell/tool.sh

# 判断是否存在 version 但是 tag 异常的情况
printShort "尝试修复版本 tag 异常"
DATA=$(git log --grep=version: --pretty=tformat:"%h %s %(describe)" | awk '{if($3!=$4){printf "%s,%s\n",$1,$3}}')

if test -z "${DATA}"
then
    echo "没有需要修复的 tag "
else
    echo "需要处理的提交如下:"
    echo "${DATA}"
fi 

for D in $DATA
do
    
    TAG=$(echo "$D"|awk -F, '{print $2}')
    HASH=$(echo "$D"|awk -F, '{print $1}')
    echo "正在处理 ${TAG}"
    # 删除老的 tag 如果存在，然后再新建 TAG
    git tag -d "$TAG"
    git tag -m "${TAG}" "${TAG}" "${HASH}"
done

# 判断远端是 http 时推送 tag 到远端
REPO=$(${GIT} remote get-url origin)
if [[ "${REPO}" == http* ]]
then
    echo "正在将 tags 推送到远端"
    git push --tags
fi
